<?php
/**
 * Created by PhpStorm.
 * User: jiyan
 * Date: 2017/4/28
 * Time: 10:27
 */
/**
 * 初次执行类
 */
class DH16{

    /**
     * 总方法
     */
    public static function run(){
        //判断文件夹是否存在，不存在则需要创建，避免每次使用框架都创建文件夹，造成冗余
        if(!is_dir('App')) {
            //1.创建文件夹
           self::createDir();
            //2.复制文件
            self::copyFiles();
        }
        //3.载入核心文件
        self::loadCore();
        //4.执行应用类
        \DH16\Libs\App::run();
    }

    /**
     * 1.创建文件夹
     */
    private static function createDir(){
        //1.准备用户所需要的文件，存入数组中
        $dirs = [
            'App/Home/Controller',    //放前台模板控制器
            'App/Home/View/Index',    //放前台首页模板
            'App/Config',              //放用户配置项文件
            'Public',                  //放公共样式
        ];

        //2.循环遍历文件数组
        foreach($dirs as $v){
            //3.创建文件夹
            is_dir($v) || mkdir($v,0777,true);
        }
    }

    /**
     * 2.复制文件
     */
    private static function copyFiles(){
        //复制bootstrap.min.css文件
        copy('./DH16/Common/bootstrap.min.css','./Public/bootstrap.min.css');
        //复制用户配置项文件
        copy('./DH16/Common/config.php','./App/Config/config.php');
        //复制系统配置项文件
        copy('./DH16/Common/config.php','./config.php');
        //复制失败模板文件
        copy('./DH16/Common/error.html','./Public/error.html');
        //复制成功模板文件
        copy('./DH16/Common/success.html','./Public/success.html');
        //复制首页模板文件
        copy('./DH16/Common/index.html','./App/Home/View/Index/index.html');
        //复制首页控制器模板
        copy('./DH16/Common/IndexController.php','./App/Home/Controller/IndexController.php');
    }

    /**
     * 3.载入核心文件(考虑顺序)
     */
    private static function loadCore(){
        //载入函数库
        require './DH16/Libs/functions.php';
        //载入公共控制器
        require './DH16/Libs/Controller.php';
        //载入应用类
        require './DH16/Libs/App.php';
    }
}
DH16::run();
